﻿namespace LowCoding.Common
{
    //AttributeUsage:属性用法
    //AttributeTargets:属性目标。指定可应用属性的应用程序元素。此枚举支持其成员值的按位组合。
    //AttributeUsage.AttributeTargets.Field:可以对字段应用属性

    //AttributeUsage.AllowMultiple:获取或设置一个布尔值，
    //该值指示能否为一个程序元素指定多个指示属性实例.
    //如果允许指定多个实例，则为 true；否则为 false。 默认值为 false。
    [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
    //特性是继承自 Attribute 基类的类。
    //所有继承自 Attribute 的类都可以用作其他代码块的一种“标记”。
    //例如，有一个名为 ObsoleteAttribute 的特性。
    //它用于示意代码已过时，不得再使用。 可以将此特性应用于类（比如说，使用方括号[]）。
    //虽然此类的名称为 ObsoleteAttribute，但只需在代码中使用 [Obsolete]。
    //如果愿意，也可以使用全名 [ObsoleteAttribute]。
    //如果将类标记为已过时，最好说明已过时的原因和/或改用的类。 为此，可将字符串参数传递给 Obsolete 特性
    //
    public class EnumValueAttribute : Attribute
    {
        /// <summary>
        /// 值
        /// </summary>
        private string _value;

        public string Value
        { get { return _value; } }

        /// <summary>
        /// 描述
        /// </summary>
        private string _description;

        public string Description
        { get { return _description; } }

        public EnumValueAttribute(string value)
        {
            this._value = value;
        }

        public EnumValueAttribute(string value, string description)
        {
            _value = value;
            _description = description;
        }
    }
}